local config = {}

-- 总开关
config.waf_enable = "on"

-- 记录waf拦截日志
config.waf_log = "on"
-- waf拦截日志路径(绝对路径，确保nginx用户有写权限；文件未生成前，所属目录需要有写权限)
--     文件名可自定义，只要nginx用户有写权限即可。
--     我的配置值 "/www/wwwlogs/cls_lua_waf_nginx.log"
--     此处文件名以 _nginx.log 结尾，是因为我的环境用 logrotate 定时处理日志，已经有 *nginx.log 的规则，省点事。
config.waf_log_file = "/www/wwwlogs/cls_lua_waf_nginx.log"

-- waf基础目录(绝对路径,库中规则目录及某些文件路径依此路径)
--     比如: "/usr/local/openresty/nginx/conf/cls_lua_waf"
config.cls_waf_base_path = "/usr/local/openresty/nginx/conf/cls_lua_waf"

-- libmaxminddb编译安装后的库文件路径(绝对路径)
-- 主要用于境外IP检测,如果不需要检测境外IP(如ip_foreign_check="off"时),可忽略此配置项
--   linux下需要先安装libmaxminddb(项目地址 https://github.com/maxmind/libmaxminddb)
--       默认安装路径 "/usr/local/lib/libmaxminddb.so"
--   windows下设置 config.cls_waf_base_path.."/lib/libmaxminddb_win/libmaxminddb.dll"
config.lib_libmaxminddb_path = "/usr/local/lib/libmaxminddb.so"


-- 是否开启IP白名单校验(白名单命中,后续校验都不做)
config.ip_white_check = "on"
-- IP白名单命中时是否记录日志(关闭可减少日志)
config.ip_white_log = "off"


-- 是否开启IP黑名单校验
config.ip_black_check = "on"
-- IP黑名单校验不通过时,返回内容 (填写错误码或者'default'或者自定义内容)
config.ip_black_deny_return = 404


-- 是否开启境外IP禁止访问
config.ip_foreign_check = "off"
-- 境外IP禁止访问时,返回内容 (填写错误码或者'default'或者自定义内容)
config.ip_foreign_deny_return = 404


-- 是否开启user-agent白名单校验(开启可放行搜索引擎蜘蛛UA白名单)
config.user_agent_white_check = "on"
-- user-agent白名单命中时是否记录日志(关闭可减少日志)
config.user_agent_white_log = "off"


-- 是否开启user-agent校验
config.user_agent_check = "on"
-- user-agent校验不通过时,返回内容 (填写错误码或者'default'或者自定义内容)
config.user_agent_deny_return = 404


-- 是否开启url白名单校验
config.url_white_check = "on"
-- url白名单命中时是否记录日志(关闭可减少日志)
config.url_white_log = "off"


-- 是否开启url校验
config.url_check = "on"
-- url校验不通过时,返回内容 (填写错误码或者'default'或者自定义内容)
config.url_deny_return = 404


-- 是否开启args参数校验
config.args_check = "on"
-- args参数校验不通过时,返回内容 (填写错误码或者'default'或者自定义内容)
config.args_deny_return = 404


-- 是否开启cookie校验
config.cookie_check = "on"
-- cookie校验不通过时,返回内容 (填写错误码或者'default'或者自定义内容)
config.cookie_deny_return = 404


-- 是否开启post参数校验
config.post_check = "on"
-- post参数校验不通过时,返回内容 (填写错误码或者'default'或者自定义内容)
config.post_deny_return = 404


-- 是否开启CC校验
config.cc_check = "on"
-- CC频率 单位:请求次数N/M秒 默认100/60:60秒请求100次即触发CC攻击
config.cc_rate = "100/60"
-- CC校验不通过时,返回内容 (填写错误码或者'default'或者自定义内容)
config.cc_deny_return = 404
-- CC检测命中,封锁IP时长(单位:秒,如果为0则永久封锁)
config.cc_ip_lock_time = 300
-- CC防护使用的数据存储类型('redis'/'shared_dict')
--   如果使用redis,需要正确配置下方redis相关配置项
--   如果使用shared_dict,需要在 http 段配置 lua_shared_dict cls_waf_cc_dict 50m;
config.cc_dict_type = 'redis'
-- redis主机
config.redis_host = "127.0.0.1"
-- redis端口
config.redis_port = 6379
-- redis数据库编号(默认0号库,通常可选0-15)
config.redis_db_index = 0
-- redis密码(没有留空字符串)
config.redis_password = ''

-- 防火墙拦截后,默认返回内容
config.default_return_html = [[MMP...]]

return config
